agents.bayesianopponentmodel
Class PerfectBayesianOpponentModelScalable

java.lang.Object
  extended by agents.bayesianopponentmodel.OpponentModel
      extended by agents.bayesianopponentmodel.PerfectBayesianOpponentModelScalable

public class PerfectBayesianOpponentModelScalable
extends OpponentModel

Version of the standard Scalable Bayesian Model which uses the opponent's utilityspace to calculate the real utility of the opponent's bid. This is equivalent to having complete knowledge about the opponent's decision function. KNOWN BUGS: (similar to original BayesianOpponentModelScalable) 1. Opponent model does not take the opponent's strategy into account, in contrast to the original paper which depicts an assumption about the opponent'strategy which adapts over time. 2. The opponent model becomes invalid after a while as NaN occurs in some hypotheses, corrupting the overall estimation.

Author:
Mark Hendrikx

Field Summary
 
Fields inherited from class agents.bayesianopponentmodel.OpponentModel
fBiddingHistory, fDomain
 
Constructor Summary
PerfectBayesianOpponentModelScalable(UtilitySpace pUtilitySpace)
           
 
Method Summary
 double getExpectedEvaluationValue(Bid pBid, int pIssueNumber)
           
 double getExpectedUtility(Bid pBid)
          Plan: cache the results for pBid in a Hash table.
 double getExpectedWeight(int pIssueNumber)
           
 double getNormalizedWeight(Issue i, int startingNumber)
           
 boolean haveSeenBefore(Bid pBid)
           
 void setOpponentUtilitySpace(UtilitySpace opponentUtilitySpace)
           
 void updateBeliefs(Bid pBid)
           
 void updateEvaluationFns(double opponentUtility)
           
 void updateWeights(double opponentUtility)
           
 
Methods inherited from class agents.bayesianopponentmodel.OpponentModel
findMinMaxUtility, getDomain, getNormalizedUtility, isCrashed
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PerfectBayesianOpponentModelScalable

public PerfectBayesianOpponentModelScalable(UtilitySpace pUtilitySpace)
Method Detail

getExpectedEvaluationValue

public double getExpectedEvaluationValue(Bid pBid,
                                         int pIssueNumber)
                                  throws java.lang.Exception
Throws:
java.lang.Exception

getExpectedWeight

public double getExpectedWeight(int pIssueNumber)
Overrides:
getExpectedWeight in class OpponentModel

updateWeights

public void updateWeights(double opponentUtility)
                   throws java.lang.Exception
Throws:
java.lang.Exception

updateEvaluationFns

public void updateEvaluationFns(double opponentUtility)
                         throws java.lang.Exception
Throws:
java.lang.Exception

haveSeenBefore

public boolean haveSeenBefore(Bid pBid)
Overrides:
haveSeenBefore in class OpponentModel

updateBeliefs

public void updateBeliefs(Bid pBid)
                   throws java.lang.Exception
Overrides:
updateBeliefs in class OpponentModel
Throws:
java.lang.Exception

getExpectedUtility

public double getExpectedUtility(Bid pBid)
                          throws java.lang.Exception
Plan: cache the results for pBid in a Hash table. empty the hash table whenever updateWeights or updateEvaluationFns is called.

Overrides:
getExpectedUtility in class OpponentModel
Parameters:
pBid -
Returns:
weeighted utility where weights represent likelihood of each hypothesis
Throws:
java.lang.Exception

getNormalizedWeight

public double getNormalizedWeight(Issue i,
                                  int startingNumber)

setOpponentUtilitySpace

public void setOpponentUtilitySpace(UtilitySpace opponentUtilitySpace)